package com.kuyun.base.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kuyun.base.base.Page;
import com.kuyun.base.model.BaseUser;

/**
 * @author 史梁辰
 * @date 2016-6-19下午9:31:32
 */
public interface BaseUserMapper {
	/**
	 * 新增用户
	 * 
	 * @author 史梁辰
	 * @date 2016-6-19下午9:33:10
	 * @param User
	 * @return
	 */
	public int insertUser(BaseUser user);

	/**
	 * 修改用户
	 * 
	 * @author 史梁辰
	 * @date 2016-6-19下午9:33:51
	 * @param User
	 * @return
	 */
	public int updateUser(BaseUser user);

	/**
	 * 删除用户
	 * 
	 * @author 史梁辰
	 * @date 2016-6-19下午9:34:18
	 * @param User
	 * @return
	 */
	public int deleteUser(String id);

	/**
	 * 获取用户数据列表
	 * 
	 * @author 史梁辰
	 * @date 2016-6-19下午9:35:39
	 * @param User
	 * @return
	 */
	public List<BaseUser> findUsers(@Param("page") Page<BaseUser> page, @Param("user") BaseUser user);

	/**
	 * 根据id获取用户信息
	 * 
	 * @author 史梁辰
	 * @date 2016-6-19下午9:36:37
	 * @param id
	 * @return
	 */
	public BaseUser getUserById(String id);

	/**
	 * 根据用户id删除用户与角色关系
	 * 
	 * @author 史梁辰
	 * @date 2016-6-20下午11:33:46
	 * @param id
	 * @return
	 */
	public int deleteUser_Role_ByUserId(String id);

	/**
	 * 获取用户总数
	 * 
	 * @author 史梁辰
	 * @date 2016-7-8下午5:20:58
	 * @param page
	 * @param user
	 * @return
	 */
	public int getUserConunt(@Param("user") BaseUser user);

	/**
	 * 用户名重复检查
	 * 
	 * @author 史梁辰
	 * @date 2016-7-10下午7:58:43
	 * @param userName
	 * @param id
	 * @return
	 */
	public int checkUserName(@Param("userName") String userName, @Param("id") String id);

	/**
	 * 获取角色所属所有权限
	 * 
	 * @author 史梁辰
	 * @date 2016-7-14下午10:12:19
	 * @param loginName
	 * @return
	 */
	public List<String> getAllPerByUserName(@Param("user") BaseUser user);

	/**
	 * 登陆方法
	 * 
	 * @author 史梁辰
	 * @date 2016-7-14下午10:13:09
	 * @param user
	 * @return
	 */
	public BaseUser login(String userName);

	/**
	 * 检查是否绑定员工
	 * 
	 * @author 唐靖
	 *
	 * @date 2017年8月2日下午10:41:52
	 *
	 * @param id
	 * @return
	 */
	public int getEmpCount(String id);
}
